home *** CD-ROM | disk | FTP | other *** search
- From: chip@ateng.UUCP (Chip Salzenberg)
- Newsgroups: comp.sources.misc
- Subject: v02i003: Smail under Xenix -- USE THIS ONE!!!
- Message-ID: <6966@ncoast.UUCP>
- Date: 7 Jan 88 03:18:18 GMT
- Approved: allbery@ncoast.UUCP
-
- Comp.sources.misc: Volume 2, Issue 3
- Archive-Name: smail-xenix-v3
- Submitted-By: chip@ateng.UUCP (Chip Salzenberg)
-
- Brandon:
-
- Recently, you sent out a small patch to smail that I made and then posted
- in comp.unix.xenix. I did *not* intend that patch for comp.sources.misc!
- I was working on a complete set of patches that would take a stock smail
- 2.5 and make it usable under Xenix. Well, here it is. Please post this.
- [Then why did you send it to sources-misc@ncoast? ++bsa]
-
- BTW, I earlier posted a sharchive of smail mods to comp.unix.xenix. For all
- you readers of c.u.x that used those mods --
- USE THESE NEW PATCHES INSTEAD.
- Why?
- 1. Cleaner mods
- 2. Better comments
- 3. Explicit support for Micnet/Xenix-Net
- 4. Support for /etc/systemid file (no need to relink your
- kernel to change your machine name)
-
- Herein you will find a sharchive that contains a new Makefile, a set of
- patches to the smail sources, a replacement for the troublesome
- /usr/lib/mail/execmail program, and a script to install them both.
-
- All a Xenix user needs to start running smail is (1) the smail 2.5 sources,
- (2) this sharchive, and (3) Larry Wall's patch program.
-
- "Shar and enjoy."
-
- #! /bin/sh
- # This is a shell archive, meaning:
- # 1. Remove everything above the "#! /bin/sh" line.
- # 2. Save the resulting text in a file.
- # 3. Execute the file with /bin/sh (not csh) to create the files:
- # X.README
- # X.PATCHES
- # Makefile
- # execm.c
- # install_smail
- # This archive created: Tue Dec 29 10:41:42 1987
- export PATH; PATH=/bin:$PATH
- :
- echo 'shar: extracting "X.README" (2816 characters) '
- if test -f 'X.README'
- then
- echo 'shar: will not overwrite existing file "X.README" '
- else
- sed 's/^X//' << \SHAR_EOF > 'X.README'
- XX.README
- X
- XThis file describes how to use my smail 2.5 patches for SCO Xenix System V.
- X
- XTo use these patches, you need either (1) Larry Wall's "patch" program, or
- X(2) lots of patience while you apply these changes by hand.
- X
- XSo, here it is:
- X
- X 1. Find your original, untouched smail 2.5 sources. Copy these
- X to a new directory. (We'll call it "/usr/src/xsmail".)
- X
- X 2. Move the files in this sharchive (Makefile, X.README,
- X X.PATCHES, execm.c, install_smail) into /usr/src/xsmail.
- X This will overwrite the distributed Makefile.
- X
- X 3. Run "patch <X.PATCHES". No patches should fail; if any do,
- X then you probably started with modified sources or with the
- X wrong version of smail.
- X
- X (This step will leave ".orig" files lying around. You may
- X remove these at any time, but I'd leave them until installation
- X is complete just to be on the safe side. And if any patches
- X fail, those patches will be in ".rej" files.)
- X
- X 4. Examine defs.h and configure it for your installation.
- X Specifically, if you're running Micnet or Xenix-Net, you'll
- X probably want to uncomment "#define MICNET". (Or you can
- X define it in the Makefile.)
- X
- X 5. Run "make" to make smail and execm.
- X
- X 6. >As root<, run "./install_smail".
- X
- XIf you do the above steps, the following will have occurred:
- X
- X Smail is installed as /usr/bin/smail.
- X
- X /usr/bin/rmail is moved to /usr/bin/rmail.x and never used again.
- X
- X /usr/bin/smail is linked to /usr/bin/rmail.
- X
- X /usr/lib/mail/execmail is moved to /usr/lib/mail/execmail.x, which
- X smail uses for delivering local mail. (If you define MICNET when
- X compiling smail, then execmail.x is used for delivering _all_ mail,
- X not just local mail.)
- X
- X The program execm.c is installed as /usr/lib/mail/execmail. This
- X "fake" execmail just parses its arguments and executes smail. I
- X would have just linked /usr/bin/smail to /usr/lib/mail/execmail,
- X but their arguments are different. (The /bin/mail program uses
- X execmail to do its work.)
- X
- XUsers of /bin/mail note: If you want to use Internet-style addresses with
- X/bin/mail, you have to add the line "set execmail" to /usr/lib/mail/mailrc.
- XOtherwise, /bin/mail assumes that addresses without bangs must be valid
- Xlocal users.
- X
- XOne final comment: I'd like to have some idea of how widely used these
- Xpatches are. So when you get it working -- or if you can't! -- drop me a
- Xline and tell me about it. (My address is chip@ateng. If you can't get a
- Xvalid path, try codas!ateng!chip or uunet!ateng!chip.)
- X
- X 28 December 1987
- X Chip Salzenberg <chip@ateng.UUCP>
- X A T Engineering, Tampa, FL
- SHAR_EOF
- if test 2816 -ne `wc -c < 'X.README'`
- then
- echo 'shar: error transmitting "X.README" (should have been 2816 characters) '
- fi
- chmod 644 'X.README'
- fi # end of overwriting check
- :
- echo 'shar: extracting "X.PATCHES" (10886 characters) '
- if test -f 'X.PATCHES'
- then
- echo 'shar: will not overwrite existing file "X.PATCHES" '
- else
- sed 's/^X//' << \SHAR_EOF > 'X.PATCHES'
- X
- XIndex: alias.c
- X*** ../smail2.5/alias.c Mon Dec 21 18:29:55 1987
- X--- ../smail/alias.c Thu Sep 24 13:00:56 1987
- X***************
- X*** 460,462 ****
- X
- X! while((*p != NULL) && (*p != '#')) {
- X b = p;
- X--- 460,462 ----
- X
- X! while((*p != '\0') && (*p != '#')) {
- X b = p;
- X
- XIndex: defs.h
- X*** ../smail2.5/defs.h Mon Dec 21 18:29:57 1987
- X--- ../smail/defs.h Mon Dec 28 09:45:49 1987
- X***************
- X*** 18,19 ****
- X--- 18,47 ----
- X
- X+ /*
- X+ ** Modified for SCO Xenix by Chip Salzenberg (chip@ateng.UUCP).
- X+ ** Released to Usenet on 01 Dec 1987.
- X+ ** Further modified 23 Dec 1987.
- X+ **
- X+ ** Additions:
- X+ **
- X+ ** EXECMAIL is defined as the renamed /usr/lib/mail/execmail.
- X+ ** Under Xenix, this is the local delivery agent.
- X+ **
- X+ ** SMARTMAILER is now automatically defined if either SENDMAIL
- X+ ** or EXECMAIL is defined. This is useful for code that depends
- X+ ** on properties that these programs have in common (automatic
- X+ ** bouncing of failed mail, for example).
- X+ **
- X+ ** MICNET should be defined if Micnet or Xenix-Net is in use.
- X+ ** In this case, execmail is used for _all_ mail, which allows
- X+ ** the automatic routing of UUCP mail to a gateway. However,
- X+ ** execmail sends one file per recipient, even if the recipients
- X+ ** are all on the same (remote) machine. This is not exactly
- X+ ** a bug; it just increases UUCP connect time. I personally
- X+ ** leave MICNET undefined.
- X+ **
- X+ ** HOSTFILE is the name of a file containing the hostname.
- X+ ** Under Xenix, this is "/etc/systemid". HOSTFILE overrides
- X+ ** UNAME/GETHOSTNAME.
- X+ */
- X+
- X #ifndef VERSION
- X***************
- X*** 32,34 ****
- X
- X! /* if defined, HOSTNAME overrides UNAME and GETHOSTNAME */
- X /*#define HOSTNAME "host" /* literal name */
- X--- 60,69 ----
- X
- X! /* if defined, HOSTFILE overrides UNAME and GETHOSTNAME */
- X! #ifndef HOSTFILE
- X! #ifdef M_XENIX
- X! #define HOSTFILE "/etc/systemid" /* read host name from this file */
- X! #endif
- X! #endif
- X!
- X! /* if defined, HOSTNAME overrides HOSTFILE, UNAME, and GETHOSTNAME */
- X /*#define HOSTNAME "host" /* literal name */
- X***************
- X*** 105,107 ****
- X
- X! #define ALIAS "/usr/lib/aliases" /* location of mail aliases */
- X /*#define CASEALIAS /* make aliases case sensitive */
- X--- 140,147 ----
- X
- X! /* Location of mail aliases */
- X! #ifdef M_XENIX
- X! #define ALIAS "/usr/lib/mail/saliases"
- X! #else
- X! #define ALIAS "/usr/lib/aliases"
- X! #endif
- X /*#define CASEALIAS /* make aliases case sensitive */
- X***************
- X*** 125,126 ****
- X--- 165,170 ----
- X
- X+ /* list of Full Name, address pairs */
- X+ #ifdef M_XENIX
- X+ #define FULLNAME "/usr/lib/mail/fullnames"
- X+ #else
- X #define FULLNAME "/usr/lib/fullnames"
- X***************
- X*** 126,128 ****
- X #define FULLNAME "/usr/lib/fullnames"
- X! /* list of Full Name, address pairs */
- X
- X--- 170,172 ----
- X #define FULLNAME "/usr/lib/fullnames"
- X! #endif
- X
- X***************
- X*** 144,146 ****
- X
- X! /*#define LOG "/usr/spool/uucp/mail.log" /* log of uucp mail */
- X /*#define RECORD "/tmp/mail.log" /* record of uucp mail */
- X--- 188,190 ----
- X
- X! #define LOG "/usr/spool/uucp/mail.log" /* log of uucp mail */
- X /*#define RECORD "/tmp/mail.log" /* record of uucp mail */
- X***************
- X*** 162,165 ****
- X
- X! #ifndef SMAIL
- X! #define SMAIL "/bin/smail" /* location of smail command */
- X #endif
- X--- 206,212 ----
- X
- X! #ifndef SMAIL /* location of smail command */
- X! #ifdef M_XENIX
- X! #define SMAIL "/usr/bin/smail"
- X! #else
- X! #define SMAIL "/bin/smail"
- X #endif
- X***************
- X*** 165,166 ****
- X--- 212,214 ----
- X #endif
- X+ #endif
- X
- X***************
- X*** 179,182 ****
- X
- X! #define RMAIL(flags,from,sys) "%s -a%s %s - %s!rmail",UUX,from,flags,sys /* */
- X! /*#define RMAIL(flags,from,sys) "%s %s - %s!rmail",UUX,flags,sys /* */
- X
- X--- 227,230 ----
- X
- X! /*#define RMAIL(flags,from,sys) "%s -a%s %s - %s!rmail",UUX,from,flags,sys /* */
- X! #define RMAIL(flags,from,sys) "%s %s - %s!rmail",UUX,flags,sys /* */
- X
- X***************
- X*** 187,188 ****
- X--- 235,238 ----
- X
- X+ /* We're letting sendmail do lots of work for us. */
- X+
- X #define HANDLE JUSTUUCP /* see HANDLE definition below */
- X***************
- X*** 195,197 ****
- X
- X! #else
- X
- X--- 245,247 ----
- X
- X! #else /* !SENDMAIL */
- X
- X***************
- X*** 197,200 ****
- X
- X! #define HANDLE ALL
- X! #define ROUTING JUSTDOMAIN
- X
- X--- 247,249 ----
- X
- X! /* We don't have sendmail, so we'll do the work ourselves. */
- X
- X***************
- X*** 200,205 ****
- X
- X! #ifdef BSD
- X! #define LMAIL(frm,sys) "/bin/mail" /* BSD local delivery agent */
- X! #else
- X! #define LMAIL(frm,sys) "/bin/lmail" /* SV local delivery agent */
- X #endif
- X--- 249,255 ----
- X
- X! #define HANDLE ALL /* see HANDLE definition below */
- X! #define ROUTING ALWAYS /* see ROUTING definition below */
- X!
- X! #ifdef BSD /* BSD local delivery agent */
- X! #define LMAIL(frm,sys) "/bin/mail"
- X #endif
- X***************
- X*** 206,207 ****
- X--- 256,267 ----
- X
- X+ #ifdef M_XENIX /* Xenix local delivery agent (renamed) */
- X+ #define EXECMAIL "/usr/lib/mail/execmail.x"
- X+ #define LMAIL(frm,sys) "%s -m -f '%s'",EXECMAIL,frm
- X+ /*#define MICNET /* give all mail to execmail, never uux */
- X+ #endif
- X+
- X+ #ifndef LMAIL /* Default local delivery agent */
- X+ #define LMAIL(frm,sys) "/bin/lmail"
- X+ #endif
- X+
- X #define LARG(user) " '%s'",postmaster(user)
- X***************
- X*** 210,212 ****
- X
- X! #endif
- X
- X--- 270,272 ----
- X
- X! #endif /* !SENDMAIL */
- X
- X
- XIndex: deliver.c
- X*** ../smail2.5/deliver.c Mon Dec 21 18:29:59 1987
- X--- ../smail/deliver.c Wed Dec 23 12:19:33 1987
- X***************
- X*** 7,8 ****
- X--- 7,24 ----
- X
- X+ /*
- X+ ** Modified for SCO Xenix by Chip Salzenberg (chip@ateng.UUCP).
- X+ ** Released to Usenet on 01 Dec 1987.
- X+ ** Further modified 23 Dec 1987.
- X+ **
- X+ ** Additions:
- X+ **
- X+ ** If MICNET is defined, then LMAIL (execmail) is used to
- X+ ** deliver all mail, even remote mail. See defs.h for a
- X+ ** discussion of the tradeoffs of this feature.
- X+ **
- X+ ** Some #ifdefs are now SMARTMAILER instead of SENDMAIL.
- X+ ** This is because execmail has some of the intelligent
- X+ ** features of sendmail, i.e. automatic mail return.
- X+ */
- X+
- X #ifndef lint
- X***************
- X*** 219,222 ****
- X command = scommand;
- X- } else if (form == LOCAL) {
- X- command = lcommand;
- X } else {
- X--- 235,236 ----
- X***************
- X*** 222,226 ****
- X } else {
- X! command = rcommand;
- X! if(flags == uux_noqueue) {
- X! noqcnt++;
- X }
- X--- 236,250 ----
- X } else {
- X! #ifdef MICNET
- X! /* Xenix system running Micnet -- let execmail
- X! * handle all messages except retries.
- X! */
- X! command = lcommand;
- X! #else
- X! if (form == LOCAL) {
- X! command = lcommand;
- X! } else {
- X! command = rcommand;
- X! if(flags == uux_noqueue) {
- X! noqcnt++;
- X! }
- X }
- X***************
- X*** 226,227 ****
- X--- 250,252 ----
- X }
- X+ #endif
- X }
- X***************
- X*** 271,273 ****
- X if (form == LOCAL) {
- X! #ifdef SENDMAIL
- X (void) sprintf(buf, LFROM(from, nows, hostname));
- X--- 296,298 ----
- X if (form == LOCAL) {
- X! #ifdef SMARTMAILER
- X (void) sprintf(buf, LFROM(from, nows, hostname));
- X***************
- X*** 283,285 ****
- X } else {
- X! *p = NULL;
- X (void) sprintf(buf, RFROM(p+1, nows, from));
- X--- 308,310 ----
- X } else {
- X! *p = '\0';
- X (void) sprintf(buf, RFROM(p+1, nows, from));
- X***************
- X*** 372,378 ****
- X (void) fseek(spoolfp, message, 0);
- X! #ifdef SENDMAIL
- X! /* if we have sendmail, then it
- X! ** was handed the mail, which failed.
- X! ** sendmail returns the failed mail
- X! ** for us, so we need not do it again.
- X */
- X--- 397,402 ----
- X (void) fseek(spoolfp, message, 0);
- X! #ifdef SMARTMAILER
- X! /* Mail is automatically returned
- X! ** by sendmail and execmail, so we
- X! ** need not do it again.
- X */
- X
- XIndex: headers.c
- X*** ../smail2.5/headers.c Mon Dec 21 18:30:06 1987
- X--- ../smail/headers.c Wed Dec 23 12:26:43 1987
- X***************
- X*** 5,6 ****
- X--- 5,18 ----
- X
- X+ /*
- X+ ** Modified for SCO Xenix by Chip Salzenberg (chip@ateng.UUCP).
- X+ ** Released to Usenet on 01 Dec 1987.
- X+ ** Further modified 23 Dec 1987.
- X+ **
- X+ ** Additions:
- X+ **
- X+ ** Understand "a%b" to mean "a@b". (This is a judgement call.
- X+ ** I prefer to accept any mail that I can understand, not just
- X+ ** that which is "correct.")
- X+ */
- X+
- X #ifndef lint
- X***************
- X*** 155,156 ****
- X--- 167,179 ----
- X }
- X+ /*
- X+ ** Try splitting at %. If it works, this is user%domain, which we choose
- X+ ** to understand as user@domain. Prefer the righthand % in a%b%c.
- X+ ** (This code allows 'user%foo@mydom' to mean '@mydom,user@foo'.)
- X+ */
- X+ if ((parts = ssplit(address, '%', partv)) >= 2) {
- X+ (void) strcpy(domain, partv[parts-1]);
- X+ (void) strncpy(user, partv[0], partv[parts-1]-partv[0]-1);
- X+ user[partv[parts-1]-partv[0]-1] = '\0';
- X+ return (DOMAIN);
- X+ }
- X /*
- X
- XIndex: misc.c
- X*** ../smail2.5/misc.c Mon Dec 21 18:30:19 1987
- X--- ../smail/misc.c Wed Dec 23 12:30:02 1987
- X***************
- X*** 5,6 ****
- X--- 5,21 ----
- X
- X+ /*
- X+ ** Modified for SCO Xenix by Chip Salzenberg (chip@ateng.UUCP).
- X+ ** Released to Usenet on 01 Dec 1987.
- X+ ** Further modified 23 Dec 1987.
- X+ **
- X+ ** Additions:
- X+ **
- X+ ** If HOSTFILE is defined, read it to look for the hostname.
- X+ ** (This file is typically "/etc/systemid" on Xenix systems.)
- X+ ** If HOSTFILE is missing, try uname() or gethostname().
- X+ **
- X+ ** Write only the basename of the program in the log file,
- X+ ** just to make the log file easier to read.
- X+ */
- X+
- X #ifndef lint
- X***************
- X*** 53,57 ****
- X
- X! logtime = strcpy(tbuf, nows);
- X! logtime[16] = '\0';
- X! logtime += 4;
- X
- X--- 68,75 ----
- X
- X! /* To make the log file look nicer, show only the basename of
- X! * the command.
- X! */
- X! if (*command == '/')
- X! {
- X! char *p, *ecmd;
- X
- X***************
- X*** 57,58 ****
- X--- 75,92 ----
- X
- X+ if ( (ecmd = index(command, ' ')) != 0 )
- X+ *ecmd = '\0';
- X+
- X+ if ( (p = rindex(command, '/')) != 0 )
- X+ command = p + 1;
- X+
- X+ if ( ecmd != 0 )
- X+ *ecmd = ' ';
- X+ }
- X+
- X+ /* Time (now).
- X+ */
- X+ strcpy(tbuf, nows);
- X+ tbuf[16] = '\0';
- X+ logtime = &tbuf[4];
- X+
- X cmask = umask(0);
- X***************
- X*** 313,314 ****
- X--- 347,363 ----
- X (void) strcpy(hostname, HOSTNAME);
- X+ #endif
- X+ #ifdef HOSTFILE
- X+ if (!*hostname) {
- X+ FILE *fp;
- X+ char *p;
- X+
- X+ if ((fp = fopen(HOSTFILE, "r")) != NULL) {
- X+ if (fgets(hostname, SMLBUF - 1, fp) != NULL
- X+ && (p = index(hostname, '\n')) != NULL)
- X+ *p = '\0';
- X+ else
- X+ *hostname = '\0';
- X+ fclose(fp);
- X+ }
- X+ }
- X #endif
- X
- XIndex: nptx.c
- X*** ../smail2.5/nptx.c Mon Dec 21 18:30:20 1987
- X--- ../smail/nptx.c Thu Sep 24 13:07:13 1987
- X***************
- X*** 127,129 ****
- X (void) strcpy(nl[i], p+1);
- X! *p = NULL;
- X }
- X--- 127,129 ----
- X (void) strcpy(nl[i], p+1);
- X! *p = '\0';
- X }
- X***************
- X*** 164,166 ****
- X (void) strcpy(il[ii], pi+1);
- X! *pi = NULL;
- X }
- X--- 164,166 ----
- X (void) strcpy(il[ii], pi+1);
- X! *pi = '\0';
- X }
- SHAR_EOF
- if test 10886 -ne `wc -c < 'X.PATCHES'`
- then
- echo 'shar: error transmitting "X.PATCHES" (should have been 10886 characters) '
- fi
- chmod 644 'X.PATCHES'
- fi # end of overwriting check
- :
- echo 'shar: extracting "Makefile" (1427 characters) '
- if test -f 'Makefile'
- then
- echo 'shar: will not overwrite existing file "Makefile" '
- else
- sed 's/^X//' << \SHAR_EOF > 'Makefile'
- X# Makefile for smail
- X# @(#)Makefile 2.5 (smail) 9/15/87
- X#
- X# Modified for SCO Xenix by Chip Salzenberg <chip@ateng.UUCP>.
- X# Released to Usenet on 01 Dec 1987.
- X# Fixed as per comments of Chris Lewis <uunet!mnetor!spectrix!clewis>.
- X#
- X# With the addition of the `xenix' pseudo-target, this makefile now makes
- X# both smail and execm by default.
- X#
- X# Use the `install_smail' script to install the resulting binaries.
- X
- XCFLAGS = -O
- XLDFLAGS = -i
- XSHELL = /bin/sh
- XCOPY = copy -om
- X
- X#
- X# System V Release 2.0 sites can use -lmalloc for a faster malloc
- X#
- X#LIBS = -lmalloc
- X
- XOBJECTS = main.o map.o resolve.o deliver.o misc.o alias.o pw.o headers.o getpath.o str.o getopt.o
- X
- Xxenix: smail execm
- Xall: smail svbinmail lcasep pathproc mkfnames nptx execm
- X
- Xsmail: $(OBJECTS)
- X $(CC) $(LDFLAGS) -F 4000 $(OBJECTS) -o smail $(LIBS)
- X
- X$(OBJECTS): defs.h
- X $(CC) $(CFLAGS) -c $<
- X
- Xexecm: execm.c
- X $(CC) $(CFLAGS) $(LDFLAGS) execm.c -o execm
- X
- Xsvbinmail: svbinmail.c defs.h
- X $(CC) $(CFLAGS) $(LDFLAGS) svbinmail.c -o svbinmail
- X
- Xlcasep: lcasep.c
- X $(CC) $(CFLAGS) $(LDFLAGS) lcasep.c -o lcasep
- X
- Xpathproc: pathproc.sh
- X $(COPY) pathproc.sh pathproc
- X chmod 755 pathproc
- X
- Xmkfnames: mkfnames.sh
- X $(COPY) mkfnames.sh mkfnames
- X chmod 755 mkfnames
- X
- Xnptx: nptx.o pw.o str.o
- X $(CC) $(CFLAGS) nptx.o pw.o str.o -o nptx $(LIBS)
- X
- Xclean:
- X rm -f *.o *.ln a.out core
- X
- Xclobber: clean
- X rm -f smail rmail lcasep pathproc mkfnames svbinmail nptx execm
- SHAR_EOF
- if test 1427 -ne `wc -c < 'Makefile'`
- then
- echo 'shar: error transmitting "Makefile" (should have been 1427 characters) '
- fi
- chmod 644 'Makefile'
- fi # end of overwriting check
- :
- echo 'shar: extracting "execm.c" (747 characters) '
- if test -f 'execm.c'
- then
- echo 'shar: will not overwrite existing file "execm.c" '
- else
- sed 's/^X//' << \SHAR_EOF > 'execm.c'
- X/*
- X * execm.c
- X *
- X * This program is a substitute for Xenix's /usr/lib/mail/execmail.
- X *
- X * Written by Chip Salzenberg (chip@ateng.UUCP).
- X * Released to Usenet on 01 Dec 1987.
- X *
- X * Do what you want with it; I'm not responsible for lost mail,
- X * but I don't expect that this little program will lose anything.
- X */
- X
- X#include <stdio.h>
- X
- Xmain(argc, argv)
- Xint argc;
- Xchar **argv;
- X{
- X char *progname = argv[0];
- X
- X /*
- X * Drop the execmail options.
- X */
- X while (argv[1][0] == '-')
- X {
- X switch (argv[1][1])
- X {
- X case 'f':
- X case 'h':
- X argv += 2;
- X break;
- X default:
- X ++argv;
- X break;
- X }
- X }
- X
- X argv[0] = progname;
- X execv("/usr/bin/smail", argv);
- X execv("/bin/smail", argv);
- X
- X fprintf(stderr, "%s: can't execute smail!\n", progname);
- X exit(1);
- X}
- SHAR_EOF
- if test 747 -ne `wc -c < 'execm.c'`
- then
- echo 'shar: error transmitting "execm.c" (should have been 747 characters) '
- fi
- chmod 644 'execm.c'
- fi # end of overwriting check
- :
- echo 'shar: extracting "install_smail" (1137 characters) '
- if test -f 'install_smail'
- then
- echo 'shar: will not overwrite existing file "install_smail" '
- else
- sed 's/^X//' << \SHAR_EOF > 'install_smail'
- X: install_smail
- X# Shell script to install smail in a Xenix System V system.
- X#
- X# Written by Chip Salzenberg (chip@ateng.UUCP).
- X# Released to Usenet on 01 Dec 1987.
- X#
- X# Note that this script renames the standard Xenix rmail and execmail
- X# programs to rmail.x and execmail.x respectively. If those `.x' files
- X# already exist, then no renaming takes place, so you can run this script
- X# more than once without losing those renamed programs.
- X#
- X# BTW, be sure to test everything thoroughly; a broken mail system is
- X# sure to upset any users on your system.
- X
- XCOPY="copy -m"
- XSMAIL="/usr/bin/smail"
- XRMAIL="/usr/bin/rmail"
- XEXECM="/usr/lib/mail/execmail"
- X
- Xfor f in smail execm
- Xdo
- X if [ ! -x $f ]; then
- X echo "You need to compile $f first."
- X exit 1
- X fi
- Xdone
- X
- Xecho "Installing current smail -- you have 5 seconds to abort."
- Xsleep 5
- X
- Xif [ ! -f $RMAIL.x ]; then
- X mv $RMAIL $RMAIL.x
- Xfi
- Xrm -f $RMAIL
- Xif [ ! -f $EXECM.x ]; then
- X mv $EXECM $EXECM.x
- Xfi
- Xrm -f $EXECM
- X
- X$COPY execm $EXECM
- Xchown bin $EXECM
- Xchgrp bin $EXECM
- Xchmod 755 $EXECM
- X
- Xrm -f $SMAIL $RMAIL
- X$COPY smail $SMAIL
- Xchown bin $SMAIL
- Xchgrp bin $SMAIL
- Xchmod 755 $SMAIL
- Xln $SMAIL $RMAIL
- SHAR_EOF
- if test 1137 -ne `wc -c < 'install_smail'`
- then
- echo 'shar: error transmitting "install_smail" (should have been 1137 characters) '
- fi
- chmod 755 'install_smail'
- fi # end of overwriting check
- # End of shell archive
- exit 0
-
- --
- Chip Salzenberg UUCP: "{codas,uunet}!ateng!chip"
- A T Engineering My employer's opinions are a trade secret.
- Chip's Observation: "Anything that works is better than anything that doesn't."
-